#pragma once
#include <stdlib.h>
#include <math.h>

typedef struct {
    float p, i, d;          // PID参数
    float target;           // 目标值
    float current;          // 当前值
    float error[3];         // 当前及前两次误差 (用于增量式计算)
    float range_i;          // 积分限幅
    float range;            // 死区范围
    float out;              // 输出值
    float delta_out;        // 输出增量（增量式特有）
} Pid_t;

// 全局PID控制器实例（根据需要保留）
extern Pid_t *p1;
extern Pid_t *p2;

// 函数声明
Pid_t* Pid_InitStruct(float p, float i, float d, float range_i, float range);
float pid_Process_Incremental(Pid_t* p, float current, float target);
